package com.gk.panda.apis.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gk.panda.apis.Vo.BiodiversityVo;
import com.gk.panda.apis.dto.BiodiversitySaveDto;
import com.gk.panda.apis.dto.BiodiversitySearchDto;
import com.gk.panda.pojo.Biodiversity;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.List;

public interface BiodiversityService extends IService<Biodiversity> {

    /**
     * 分页查询生物名录
     *
     * @param dto
     * @return
     */
    IPage<BiodiversityVo> getBiodiversity(BiodiversitySearchDto dto);

    /**
     * 添加生物名录
     *
     * @param dto
     * @return
     * @throws UnsupportedEncodingException
     */
    int addBiodiversity(BiodiversitySaveDto dto) throws UnsupportedEncodingException;

    /**
     * 更新修改生物名录
     *
     * @param biodiversity
     * @return
     */
    int updateBiodiversity(Biodiversity biodiversity);

    /**
     * 删除生物名录
     *
     * @param id
     * @return
     */
    int deleteBiodiversity(int id);


    /**
     * 下载动植物名录导入模板
     *
     * @param response P
     * @param type     P
     */
    void downloadTemplate(HttpServletResponse response, Integer type);

    /**
     * 批量导入动植物名录信息
     *
     * @param file P
     * @param type P
     * @return R
     */
    String importBiology(MultipartFile file, Integer type);

    /**
     * 批量导出动植物名录信息
     *
     * @param response P
     * @param type     P
     */
    void exportBiology(HttpServletResponse response, Integer type);

    /**
     * 查询生物名称列表
     * @return
     */
    List<Biodiversity> biodiversityNameList();

}
